from datetime import datetime

from django import template

register = template.Library()


def my_capfirst(value):
    return value.capitalize()


# 第一个参数为过滤器的名字
# 第二个为你自定义过滤器函数的名字
register.filter('my_capfirst', my_capfirst)


# 第一个参数为过滤器的名字
@register.filter("mydefault")
def my_default(value, arg):
    return value if value else arg


@register.filter("time_since")
def time_since(value):
    '''
    过滤器：对发布时间进行处理
    1刚刚--如果和当前的时间间隔小于1分钟
    2几分钟--如果大于1分钟小于1小时
    3几小时--如果大于1小时小于24小时
    4几天--如果大于24小时小于30天
    5如果大于30 显示具体的发布年月日
    '''
    now = datetime.now()
    timestamp = (now - value).total_seconds()  # 时间差 单位秒
    print(timestamp, type(timestamp))
    if timestamp < 60:
        print("gang")
        return "刚刚"
    elif 60 < timestamp < 60 * 60:
        res = int(timestamp / 60)
        return f"{res}分钟前"
    elif 60 * 60 < timestamp < 60 * 60 * 24:
        res = int(timestamp / (60 * 60))
        return f"{res}小时前"
    elif 60 * 60 * 24 < timestamp < 60 * 60 * 24 * 30:
        res = int(timestamp / (60 * 60 * 24))
        print(123)
        return f"{res}天前"
    else:
        print("wu")
        return value.strftime("%Y-%m-%d %H:%M:%S")


register.filter('time_since', time_since)


# 自定义标签
@register.simple_tag(name='crt')
def current_time(format_string):
    return datetime.now().strftime(format_string)
